package fun.cyhgraph.service;

import fun.cyhgraph.dto.CategoryDTO;
import fun.cyhgraph.dto.CategoryTypePageDTO;
import fun.cyhgraph.entity.Category;
import fun.cyhgraph.result.PageResult;

import java.util.List;

/**
 * 分类服务
 */
public interface CategoryService {

    /**
     * 新增分类   (管理端)
     * @param categoryDTO
     */
    void addCategory(CategoryDTO categoryDTO);

    /**
     * 分类条件分页查询    (管理端)
     * @param categoryTypePageDTO
     * @return
     */
    PageResult getPageList(CategoryTypePageDTO categoryTypePageDTO);

    /**
     * 根据id查询指定分类    (管理端)
     * @param id
     * @return
     */
    Category getById(Integer id);

    /**
     * 根据id修改分类的起售/停售    (管理端)
     * @param id
     */
    void onOff(Integer id);

    /**
     * 更新分类信息    (管理端)
     * @param categoryDTO
     */
    void udpate(CategoryDTO categoryDTO);

    /**
     * 根据id删除分类     (管理端)
     * @param id
     */
    void delete(Integer id);


    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


    /**
     * 获取所有分类列表数据     (用户端)
     * @param type
     * @return
     */
    List<Category> getList(Integer type);


}
